#include "Components/AutoShape/AutoShapeConfigBase.h"
#include "Components/AutoShape/AutoShapeComponent.h"

FPrimitiveSceneProxy* UAutoShapeConfigBase::CreateSceneProxy(UAutoShapeComponent* Owner)
{
	check(Owner);
	return Owner->UPrimitiveComponent::CreateSceneProxy();
}

bool UAutoShapeConfigBase::IsZeroExtent(const UAutoShapeComponent* Owner) const
{
	check(Owner);
	return Owner->UPrimitiveComponent::IsZeroExtent();
}

struct FCollisionShape UAutoShapeConfigBase::GetCollisionShape(const UAutoShapeComponent* Owner, float Inflation) const
{
	check(Owner);
	return Owner->UPrimitiveComponent::GetCollisionShape(Inflation);
}

bool UAutoShapeConfigBase::AreSymmetricRotations(const UAutoShapeComponent* Owner, const FQuat& A, const FQuat& B, const FVector& Scale3D) const
{
	check(Owner);
	return Owner->UPrimitiveComponent::AreSymmetricRotations(A, B, Scale3D);
}

FBoxSphereBounds UAutoShapeConfigBase::CalcBounds(const UAutoShapeComponent* Owner, const FTransform& LocalToWorld) const
{
	check(Owner);
	return Owner->UShapeComponent::CalcBounds(LocalToWorld);
}

void UAutoShapeConfigBase::CalcBoundingCylinder(const UAutoShapeComponent* Owner, float& CylinderRadius, float& CylinderHalfHeight) const
{
	check(Owner);
	Owner->UShapeComponent::CalcBoundingCylinder(CylinderRadius, CylinderHalfHeight);
}

void UAutoShapeConfigBase::UpdateBodySetup(UAutoShapeComponent* Owner)
{
	check(Owner);
	// Owner->UShapeComponent::UpdateBodySetup();
}
